ActiveSync Device Wipe in ECP Fails w/ Script Error "Message: Function expected"
I am attempting to test the EAS Device Wipe via ECP. When I click the button to begin the device wipe it pops up the normal warning and when I hit OK an error box pops up and presents the following (very long) error. This is occuring in all of the 7 sites that I have exchange 2010 sp1 Ru2 installed. I have tested with multiple admin accounts as well as multiple user accounts with devices. Device wipe completes successfully when performed via the shell. Anyone ever come across this error? Client Information ------------------ User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E) CPU Class: x86 Platform: Win32 System Language: en-us User Language: en-US CookieEnabled: true ----------------- Exception Details ----------------- Date: Wed Mar 16 12:41:13 CST 2011 Message: Function expected Url: https://server.domain.local/ecp/14.1.270.1/Scripts/list.js Line: 20 Call Stack ---------- anonymous($p1_0,$p1_1) ----------------------- function($p1_0,$p1_1){ $0($p1_1,'Wipe',Strings.WipePendingPendingDisplayText);} ----------------------- anonymous() ----------------------- function(){return b.apply(a,arguments)} ----------------------- anonymous($p0) ----------------------- function($p0){this.get_modalDialog().close();if(this.$1_13){this.$1_13($p0,this.$1_14);}this.onClose();} ----------------------- anonymous($p0) ----------------------- function($p0){var $0=this.$1_7($p0.target);if($0&&!$0.disabled){var $1=$0.getAttribute('buttontype');this.onButtonClicked($1);}else{this.onClick($p0);}} ----------------------- anonymous($p0) ----------------------- function($p0){if(this.$2_4){this.$2_4.$1_4($p0);}} ----------------------- anonymous() ----------------------- function(){return b.apply(a,arguments)} ----------------------- anonymous() ----------------------- function(){var b={};try{b=Sys.UI.DomElement._getWindow(a).event}catch(c){}return e.call(a,new Sys.UI.DomEvent(b))} ----------------------- Dump Event ---------- recordset = null type = error fromElement = null toElement = null altLeft = false keyCode = 0 repeat = false reason = 0 data = behaviorCookie = 0 source = null contentOverflow = false behaviorPart = 0 url = dataTransfer = null ctrlKey = false shiftLeft = false dataFld = returnValue = undefined qualifier = wheelDelta = 0 bookmarks = null button = 0 srcFilter = null nextPage = cancelBubble = false x = 0 y = 0 srcElement = null screenX = 1052 screenY = 562 srcUrn = origin = boundElements = [object] clientX = 525 clientY = 291 propertyName = shiftKey = false ctrlLeft = false offsetX = 0 offsetY = 0 altKey = false errorMessage = Function expected errorUrl = https://server.domain.local/ecp/14.1.270.1/Scripts/list.js errorLine = 20 errorCharacter = 1 errorCode = 0 Detailed Call Stack ------------------- anonymous($p1_0,$p1_1) $p1_0 = 'OK' $p1_1 = [object Object] invokeDefaultItem = function(focusAfterInvoke){if(this.isDefault&&this.get_enabled()){this.invoke(focusAfterInvoke);return true;}return false;} forceUpdateEnabled = function(){this.set_$3(this.$0.get_enabled()&&this.$2);} set_confirmMessageInfo = function(value){this.$7=value;return value;} get_confirmMessageInfo = function(){return this.$7;} get_useCustomConfirmDialog = function(){return this.$6;} get_text = function(){return EcpUtil.getInnerText(this.linkElement.getElementsByTagName('SPAN')[0]);} get_targetObjectName = function(){return this.$5;} set_targetObjects = function(value){this.$4=value;return value;} get_targetObjects = function(){return this.$4;} $7 = null $4 = [object Object] name = WipeDevice isDefault = false selectionMode = RequiresSingleSelection handler = function($_){ return WipeDeviceCommandHandler($_)} refreshAction = SingleRow condition = function($_){ return $_.IsRemoteWipeSupported && $_.DeviceStatusIsOK && $_.PendingCommand != 'Wipe'} groupId = WipeCommandGroup hideOnDisable = false hidden = false confirmDialogIcon = Warning singleSelectionConfirmMessage = selectionConfirmMessageDetail = multiSelectionConfirmMessage = set_useCustomConfirmDialog = function(value){this.$6=value;return value;} $6 = false selectionParameterName = showAddressBar = false showMenuBar = false showStatusBar = false showToolBar = false resizable = false singleInstance = false navigateUrl = targetFrame = position = dialogHeight = dialogWidth = actionName = set_toolBar = function(value){this.$0=value;return value;} $0 = [object Object] set_element = function(value){if(this.get_element()!==value){ToolBarButton.callBaseMethod(this, 'set_element',[value]);if(this.get_element()){this.linkElement=this.get_element().getElementsByTagName('A')[0];if(!this.get_$3()){AccUtil.disableLinkForScreenReader(this.linkElement);}}}return value;} get_element = function(){return ToolBarButton.callBaseMethod(this, 'get_element');} $1 = [object] linkElement = https://server.domain.local/ecp/UsersGroups/EditEASMailbox.aspx?pwmcid=1&id=feaf16f8-d84c-4c6b-abb6-4a47b8c80d14# get_$3 = function(){return ToolBarButton.callBaseMethod(this, 'get_$3');} get_visible = function(){return this.get_element().style.display!=='none';} changeEnabledStatus = function(selectedDataObjects,isEditing){var $0=true;var $1=selectedDataObjects.length;var $2=$1===1;var $3=$1>0;switch(this.selectionMode){case 'RequiresSingleSelection':$0=$0&&$2;break;case 'SupportsMultipleSelection':$0=$0&&$3;break;case 'RequiresSingleSelectionDisabledOnInlineEdit':$0=$0&&!isEditing&&$2;break;}for(var $4=0;$4<$1&&$0;$4++){$0=$0&&(!this.condition||this.condition(selectedDataObjects[$4]));}this.set_enabled($0);} set_enabled = function(value){this.$2=value;this.set_$3(this.$0.get_enabled()&&value);return value;} $2 = true set_$3 = function($p0){if(this.get_$3()!==$p0){if($p0){AccUtil.enableLinkForScreenReader(this.linkElement);}else{AccUtil.disableLinkForScreenReader(this.linkElement);}}ToolBarButton.callBaseMethod(this, 'set_$3',[$p0]);return $p0;} set_visible = function(value){this.get_element().style.display=(value&&!this.hidden)?'':'none';return value;} updateSeparator = function(){for(var $0=1;$0<this.get_toolBar().get_Items().length;$0+=2){this.get_toolBar().get_Items()[$0].set_visible(this.get_toolBar().get_Items()[$0-1].get_visible());}if(!this.get_toolBar().get_Items()[this.get_toolBar().get_Items().length-1].get_visible()){for(var $1=this.get_toolBar().get_Items().length-2;$1>0;$1-=2){if(this.get_toolBar().get_Items()[$1].get_visible()){this.get_toolBar().get_Items()[$1].set_visible(false);break;}}}} get_toolBar = function(){return this.$0;} setTargetObjects = function(name,targetObjects){if(this.selectionMode==='RequiresSingleSelection'||this.selectionMode==='SupportsMultipleSelection'){this.$5=name;this.$4=targetObjects;}} $5 = iPad getItemByName = function(name){if(this.name===name){return this;}return null;} get_enabled = function(){return this.get_$3();} invoke = function(focusAfterInvoke){if(!this.get_enabled()){return;}if(!this.handler){return;}var $0=null;var $1=null;if(this.multiSelectionConfirmMessage&&this.get_targetObjects().length>1){$0=String.format(this.multiSelectionConfirmMessage,this.$4.length);}else if(this.singleSelectionConfirmMessage&&this.get_targetObjects().length===1){$0=String.format(this.singleSelectionConfirmMessage,this.$5);}if(this.selectionConfirmMessageDetail){$1=this.selectionConfirmMessageDetail;}var $2=DialogManager.hasVisibleModalDialog();if(!$0){this.$8();if(!$2&&DialogManager.hasVisibleModalDialog()){DialogManager.focusControlAfterClose(focusAfterInvoke,true);}else{EcpUtil.focusWithoutActivateWindow(focusAfterInvoke);}}else{if(!$2){DialogManager.focusControlAfterClose(focusAfterInvoke,true);}var $3=new Info();$3.Message=$0;$3.Details=$1;$3.Icon=this.confirmDialogIcon||MessageBoxIcon.warning;if(this.get_useCustomConfirmDialog()){this.set_confirmMessageInfo($3);this.$8();}else{MessageBox.show($3,2,Function.createDelegate(this,function($p1_0,$p1_1){ if($p1_0==='Yes'){this.$8();}else{var $1_0=(window.self).CancelledCommandHandler;if($1_0){$1_0(this);}}}),null);}}} $8 = function(){if(this.handler&&typeof(this.handler)==='function'){this.handler(this);}} ----------------------- function($p1_0,$p1_1){ $0($p1_1,'Wipe',Strings.WipePendingPendingDisplayText);} ----------------------- anonymous() = 'OK',[object Object] invokeDefaultItem = function(focusAfterInvoke){if(this.isDefault&&this.get_enabled()){this.invoke(focusAfterInvoke);return true;}return false;} forceUpdateEnabled = function(){this.set_$3(this.$0.get_enabled()&&this.$2);} set_confirmMessageInfo = function(value){this.$7=value;return value;} get_confirmMessageInfo = function(){return this.$7;} get_useCustomConfirmDialog = function(){return this.$6;} get_text = function(){return EcpUtil.getInnerText(this.linkElement.getElementsByTagName('SPAN')[0]);} get_targetObjectName = function(){return this.$5;} set_targetObjects = function(value){this.$4=value;return value;} get_targetObjects = function(){return this.$4;} $7 = null $4 = [object Object] name = WipeDevice isDefault = false selectionMode = RequiresSingleSelection handler = function($_){ return WipeDeviceCommandHandler($_)} refreshAction = SingleRow condition = function($_){ return $_.IsRemoteWipeSupported && $_.DeviceStatusIsOK && $_.PendingCommand != 'Wipe'} groupId = WipeCommandGroup hideOnDisable = false hidden = false confirmDialogIcon = Warning singleSelectionConfirmMessage = selectionConfirmMessageDetail = multiSelectionConfirmMessage = set_useCustomConfirmDialog = function(value){this.$6=value;return value;} $6 = false selectionParameterName = showAddressBar = false showMenuBar = false showStatusBar = false showToolBar = false resizable = false singleInstance = false navigateUrl = targetFrame = position = dialogHeight = dialogWidth = actionName = set_toolBar = function(value){this.$0=value;return value;} $0 = [object Object] set_element = function(value){if(this.get_element()!==value){ToolBarButton.callBaseMethod(this, 'set_element',[value]);if(this.get_element()){this.linkElement=this.get_element().getElementsByTagName('A')[0];if(!this.get_$3()){AccUtil.disableLinkForScreenReader(this.linkElement);}}}return value;} get_element = function(){return ToolBarButton.callBaseMethod(this, 'get_element');} $1 = [object] linkElement = https://server.domain.local/ecp/UsersGroups/EditEASMailbox.aspx?pwmcid=1&id=feaf16f8-d84c-4c6b-abb6-4a47b8c80d14# get_$3 = function(){return ToolBarButton.callBaseMethod(this, 'get_$3');} get_visible = function(){return this.get_element().style.display!=='none';} changeEnabledStatus = function(selectedDataObjects,isEditing){var $0=true;var $1=selectedDataObjects.length;var $2=$1===1;var $3=$1>0;switch(this.selectionMode){case 'RequiresSingleSelection':$0=$0&&$2;break;case 'SupportsMultipleSelection':$0=$0&&$3;break;case 'RequiresSingleSelectionDisabledOnInlineEdit':$0=$0&&!isEditing&&$2;break;}for(var $4=0;$4<$1&&$0;$4++){$0=$0&&(!this.condition||this.condition(selectedDataObjects[$4]));}this.set_enabled($0);} set_enabled = function(value){this.$2=value;this.set_$3(this.$0.get_enabled()&&value);return value;} $2 = true set_$3 = function($p0){if(this.get_$3()!==$p0){if($p0){AccUtil.enableLinkForScreenReader(this.linkElement);}else{AccUtil.disableLinkForScreenReader(this.linkElement);}}ToolBarButton.callBaseMethod(this, 'set_$3',[$p0]);return $p0;} set_visible = function(value){this.get_element().style.display=(value&&!this.hidden)?'':'none';return value;} updateSeparator = function(){for(var $0=1;$0<this.get_toolBar().get_Items().length;$0+=2){this.get_toolBar().get_Items()[$0].set_visible(this.get_toolBar().get_Items()[$0-1].get_visible());}if(!this.get_toolBar().get_Items()[this.get_toolBar().get_Items().length-1].get_visible()){for(var $1=this.get_toolBar().get_Items().length-2;$1>0;$1-=2){if(this.get_toolBar().get_Items()[$1].get_visible()){this.get_toolBar().get_Items()[$1].set_visible(false);break;}}}} get_toolBar = function(){return this.$0;} setTargetObjects = function(name,targetObjects){if(this.selectionMode==='RequiresSingleSelection'||this.selectionMode==='SupportsMultipleSelection'){this.$5=name;this.$4=targetObjects;}} $5 = iPad getItemByName = function(name){if(this.name===name){return this;}return null;} get_enabled = function(){return this.get_$3();} invoke = function(focusAfterInvoke){if(!this.get_enabled()){return;}if(!this.handler){return;}var $0=null;var $1=null;if(this.multiSelectionConfirmMessage&&this.get_targetObjects().length>1){$0=String.format(this.multiSelectionConfirmMessage,this.$4.length);}else if(this.singleSelectionConfirmMessage&&this.get_targetObjects().length===1){$0=String.format(this.singleSelectionConfirmMessage,this.$5);}if(this.selectionConfirmMessageDetail){$1=this.selectionConfirmMessageDetail;}var $2=DialogManager.hasVisibleModalDialog();if(!$0){this.$8();if(!$2&&DialogManager.hasVisibleModalDialog()){DialogManager.focusControlAfterClose(focusAfterInvoke,true);}else{EcpUtil.focusWithoutActivateWindow(focusAfterInvoke);}}else{if(!$2){DialogManager.focusControlAfterClose(focusAfterInvoke,true);}var $3=new Info();$3.Message=$0;$3.Details=$1;$3.Icon=this.confirmDialogIcon||MessageBoxIcon.warning;if(this.get_useCustomConfirmDialog()){this.set_confirmMessageInfo($3);this.$8();}else{MessageBox.show($3,2,Function.createDelegate(this,function($p1_0,$p1_1){ if($p1_0==='Yes'){this.$8();}else{var $1_0=(window.self).CancelledCommandHandler;if($1_0){$1_0(this);}}}),null);}}} $8 = function(){if(this.handler&&typeof(this.handler)==='function'){this.handler(this);}} ----------------------- function(){return b.apply(a,arguments)} ----------------------- anonymous($p0) $p0 = 'OK' ----------------------- function($p0){this.get_modalDialog().close();if(this.$1_13){this.$1_13($p0,this.$1_14);}this.onClose();} ----------------------- anonymous($p0) $p0 = [object Object] stopPropagation = function(){if(this.rawEvent.stopPropagation)this.rawEvent.stopPropagation();else if(window.event)this.rawEvent.cancelBubble=true} preventDefault = function(){if(this.rawEvent.preventDefault)this.rawEvent.preventDefault();else if(window.event)this.rawEvent.returnValue=false} type = click rawEvent = [object] altKey = false button = 0 keyCode = 0 clientX = 525 clientY = 291 ctrlKey = false target = [object] offsetX = 25 offsetY = 6 screenX = 1052 screenY = 562 shiftKey = false ----------------------- function($p0){var $0=this.$1_7($p0.target);if($0&&!$0.disabled){var $1=$0.getAttribute('buttontype');this.onButtonClicked($1);}else{this.onClick($p0);}} ----------------------- anonymous($p0) $p0 = [object Object] stopPropagation = function(){if(this.rawEvent.stopPropagation)this.rawEvent.stopPropagation();else if(window.event)this.rawEvent.cancelBubble=true} preventDefault = function(){if(this.rawEvent.preventDefault)this.rawEvent.preventDefault();else if(window.event)this.rawEvent.returnValue=false} type = click rawEvent = [object] altKey = false button = 0 keyCode = 0 clientX = 525 clientY = 291 ctrlKey = false target = [object] offsetX = 25 offsetY = 6 screenX = 1052 screenY = 562 shiftKey = false ----------------------- function($p0){if(this.$2_4){this.$2_4.$1_4($p0);}} ----------------------- anonymous() = [object Object] stopPropagation = function(){if(this.rawEvent.stopPropagation)this.rawEvent.stopPropagation();else if(window.event)this.rawEvent.cancelBubble=true} preventDefault = function(){if(this.rawEvent.preventDefault)this.rawEvent.preventDefault();else if(window.event)this.rawEvent.returnValue=false} type = click rawEvent = [object] altKey = false button = 0 keyCode = 0 clientX = 525 clientY = 291 ctrlKey = false target = [object] offsetX = 25 offsetY = 6 screenX = 1052 screenY = 562 shiftKey = false ----------------------- function(){return b.apply(a,arguments)} ----------------------- anonymous() = [object] recordset = null type = error fromElement = null toElement = null altLeft = false keyCode = 0 repeat = false reason = 0 data = behaviorCookie = 0 source = null contentOverflow = false behaviorPart = 0 url = dataTransfer = null ctrlKey = false shiftLeft = false dataFld = returnValue = undefined qualifier = wheelDelta = 0 bookmarks = null button = 0 srcFilter = null nextPage = cancelBubble = false x = 0 y = 0 srcElement = null screenX = 1052 screenY = 562 srcUrn = origin = boundElements = [object] clientX = 525 clientY = 291 propertyName = shiftKey = false ctrlLeft = false offsetX = 0 offsetY = 0 altKey = false ----------------------- function(){var b={};try{b=Sys.UI.DomElement._getWindow(a).event}catch(c){}return e.call(a,new Sys.UI.DomEvent(b))} -----------------------
March 16th, 2011 2:58pm

Please reset the /ECP virtual directory on the CAS server, see if the issue still appears Reset Client Access Virtual Directories Please reproduce the issue, and then check if there’s any related trace in the IIS log Please run ExBPA against the exchange server for health check Please increase the diagnostic logging level of the “Control Panel” on the CAS server, reproduce the issue, and then check if there’s any related event in the application log Manage Diagnostic Logging LevelsPlease remember to click Mark as Answer on the post that helps you, and to click Unmark as Answer if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.
Free Windows Admin Tool Kit Click here and download it now
March 22nd, 2011 11:38pm

Hi James, what are the consequences of resetting the client access virtual directories? I'm having the same issue but hasn't tried your solution yet. I don't want to mess up anything on our organization. Thanks, John
March 24th, 2012 9:47am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics